import request from "@/utils/request";

const QUESTIONINFO_BASE_URL = "/wz/exam/question_info";

class QuestionInfoAPI {
  /** 获取试题信息表分页数据 */
  static getPage(queryParams?: QuestionInfoPageQuery) {
    return request<any, PageResult<QuestionInfoPageVO[]>>({
      url: `${QUESTIONINFO_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  }

  /**
   * 获取试题信息表表单数据
   *
   * @param id QuestionInfoID
   * @returns QuestionInfo表单数据
   */
  static getFormData(id: number) {
    return request<any, QuestionInfoForm>({
      url: `${QUESTIONINFO_BASE_URL}/detail?id=` + id,
      method: "get",
    });
  }

  /** 添加试题信息表*/
  static add(data: QuestionInfoForm) {
    return request({
      url: `${QUESTIONINFO_BASE_URL}/save`,
      method: "post",
      data: data,
    });
  }

  /**
   * 更新试题信息表
   *
   * @param id QuestionInfoID
   * @param data QuestionInfo表单数据
   */
  static update(data: QuestionInfoForm) {
    return request({
      url: `${QUESTIONINFO_BASE_URL}/update`,
      method: "put",
      data: data,
    });
  }

  /**
   * 批量删除试题信息表，多个以英文逗号(,)分割
   *
   * @param ids 试题信息表ID字符串，多个以英文逗号(,)分割
   */
  static deleteByIds(ids: string) {
    return request({
      url: `${QUESTIONINFO_BASE_URL}/remove?ids=` + ids,
      method: "delete",
    });
  }

  /** 下载试题excel模板 */
  static downloadExcel() {
    return request({
      url: `${QUESTIONINFO_BASE_URL}/downloadExcel`,
      method: "get",
      responseType: "arraybuffer",
    });
  }

  /** 下载试题txt模板 */
  static downloadTxt() {
    return request({
      url: `${QUESTIONINFO_BASE_URL}/downloadTxt`,
      method: "get",
      responseType: "arraybuffer",
    });
  }

  /** 上传试题 */
  static uploadQuestion(data: QuestionInfoImportForm) {
    return request({
      url: `${QUESTIONINFO_BASE_URL}/importQuestion`,
      headers: { "Content-Type": "multipart/form-data" },
      method: "post",
      data: data,
    });
  }
}

export default QuestionInfoAPI;

/** 试题信息表分页查询参数 */
export interface QuestionInfoPageQuery extends PageQuery {
  /** 课程名称 */
  subjectId?: number;
  /** 试题内容 */
  content?: string;
  /** 阶段id */
  schoolType?: number;
  /** 年级 */
  gradeInfoId?: number;
  questionType?: number;
  bs?: string;
}

/** 试题信息表表单对象 */
export interface QuestionInfoForm {
  /** 试题id */
  id?: number;
  /** 课程名称 */
  subjectId?: number;
  /** 视频地址 */
  video_url?: string;
  /** 答案 */
  answer?: string;
  /** 试题内容 */
  content?: string;
  /** 阶段id */
  schoolType?: number;
  /** 试题类型 */
  questionType?: number;
  /** 年级 */
  gradeInfoId?: number;
  /** 试题选项（多个以逗号隔开） */
  options?: string;
  /** 试题解析内容 */
  analysis?: string;
  /** 总结升华 */
  summarize?: string;
}

/** 试题信息表导入表单对象 */
export interface QuestionInfoImportForm {
  /** 文件字段 */
  file?: File;
  /** 课程名称 */
  subjectId?: number;
  /** 阶段id */
  schoolType?: number;
  /** 试题类型 */
  questionType?: number;
  /** 年级 */
  gradeInfoId?: number;
}

/** 试题信息表分页对象 */
export interface QuestionInfoPageVO {
  /** 课程名称 */
  subject_id?: number;
  /** 创建时间 */
  create_date?: string;
  /** 试题内容 */
  content?: string;
  /** 阶段id */
  school_type?: number;
  /** 试题类型 */
  question_type?: number;
  /** 年级 */
  grade_info_id?: number;
}
